package com.esp.studentManagementSystem.config;

import com.querydsl.jpa.impl.JPAQueryFactory;
import jakarta.persistence.EntityManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    /**
     * 创建并返回一个JPAQueryFactory实例。
     * JPAQueryFactory是Querydsl中用于构建类型安全的JPA查询的类。
     * 这个方法接受一个EntityManager作为参数，EntityManager是Java Persistence API中
     * 用于管理持久化操作的实体。通过使用EntityManager，JPAQueryFactory能够与数据库进行交互。
     *
     * @param entityManager 用于执行JPA查询的EntityManager实例。
     * @return 返回一个配置好的JPAQueryFactory实例，可用于构建类型安全的查询。
     */
    @Bean
    public JPAQueryFactory jpaQuery(EntityManager entityManager) {
        return new JPAQueryFactory(entityManager);
    }
}
